package com.neu.utils;

/**
 * Created with IntelliJ IDEA.
 *
 * @author 17478
 * @ClassName: ErrorCode
 * @description: TODO
 * @date 2024-11-15 19:35
 * @version: 1.0
 */
public enum ErrorCode {

    // 成功操作
    SUCCESS(1, "操作成功"),

    // 通用错误
    FAILURE(0, "操作失败"),
    INVALID_PARAMETER(400, "无效参数"),
    RESOURCE_NOT_FOUND(404, "资源未找到"),
    INTERNAL_SERVER_ERROR(500, "服务器内部错误"),

    // 权限相关错误
    UNAUTHORIZED(401, "未授权"),
    FORBIDDEN(403, "禁止访问"),

    // 功能点分析相关错误
    FP_ANALYSIS_NOT_FOUND(1001, "功能点分析未找到"),
    CREATE_FAILED(1002, "功能点分析创建失败"),
    UPDATE_FAILED(1003, "功能点分析更新失败"),
    DELETE_FAILED(1004, "功能点分析删除失败"),

    // 其他常见错误码
    INVALID_PROJECT_STAGE(2001, "无效的项目阶段"),
    DATABASE_ERROR(3001, "数据库操作失败");

    private final int code;
    private final String message;

    // 构造函数
    ErrorCode(int code, String message) {
        this.code = code;
        this.message = message;
    }

    // 获取错误码
    public int getCode() {
        return code;
    }

    // 获取错误信息
    public String getMessage() {
        return message;
    }

    // 根据错误码获取枚举实例
    public static ErrorCode fromCode(int code) {
        for (ErrorCode errorCode : values()) {
            if (errorCode.getCode() == code) {
                return errorCode;
            }
        }
        return null;  // 如果没有找到匹配的错误码，返回 null
    }
}
